home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 051-060 / amok51 / m2 / defs / arts.def next >
Text File  |  1993-11-04  |  3KB  |  131 lines

  1. (*                _____________________________________________
  2.  *         //    /                                             \         //
  3.  *        //     \          Amiga Run Time System              /        //
  4.  *    \\ //      /           4.01 / 26.08.90 / bp              \    \\ //
  5.  *     \X/       \_____________________________________________/     \X/
  6.  *)
  7.  
  8. DEFINITION MODULE Arts;
  9.  
  10. (*$ LargeVars:=FALSE
  11.     LongAlign:=FALSE
  12.     NameChk:=FALSE
  13.  *)
  14.  
  15. FROM SYSTEM IMPORT
  16.   ADDRESS,LONGSET,BPTR;
  17.  
  18. CONST
  19.   maxModName=32; maxKeys=3;
  20.  
  21. TYPE
  22.   ErrorType=(trap,exception,system,assertion,breakPoint,explicit);
  23.   SysErr=(halt,illCase,fctReturn,stkOvl,illCall);
  24.   ErrorFrame=RECORD
  25.     pc: ADDRESS;
  26.     dRegs: ARRAY [0..7] OF LONGINT;
  27.     aRegs: ARRAY [8..15] OF ADDRESS;
  28.     CASE error: ErrorType OF
  29.     | trap: trapNr: INTEGER;
  30.     | exception: exceptionMask: LONGSET
  31.     | system: sysErr: SysErr
  32.     | assertion,breakPoint,explicit:
  33.     END;
  34.     header,body: ADDRESS
  35.   END;
  36.   ModType=(none,mod,lib,noImp);
  37.   ModKeys=ARRAY [0..maxKeys-1] OF CARDINAL;
  38.   ModName=ARRAY [0..maxModName-1] OF CHAR;
  39.  
  40. VAR
  41.  (*
  42.   *   Umgebungsvariablen von M2Amiga.
  43.   *
  44.   *   Einzig returnVal darf verändert,
  45.   *   alle anderen nur gelesen werden!!
  46.   *)
  47.  
  48.   wbStarted: BOOLEAN;
  49.  (*
  50.   *  TRUE: Start von Workbench, FALSE: Start von CLI
  51.   *)
  52.  
  53.   returnVal: LONGINT;
  54.  (*
  55.   *  Dies ist der Rückgabewert an das Dos, kann beliebig
  56.   *  gesetzt werden.
  57.   *  Bei Workbench-Start wird returnVal als INTEGER
  58.   *  in das Feld length der WBStartupMsg eingetragen.
  59.   *)
  60.  
  61.   startupMsg: ADDRESS;
  62.  (*
  63.   *  Zeiger auf die Workbench.WBStartup Message
  64.   *  Nur gültig bei Workbench-Start (wbStarted),
  65.   *  sonst NIL!
  66.   *)
  67.  
  68.   dosCmdBuf: ADDRESS;
  69.   dosCmdLen: LONGINT;
  70.  (*
  71.   *  Adresse und Länge der CLI-Argumente.
  72.   *  Nur gültig bei CLI-Start (NOT wbStarted)!
  73.   *)
  74.  
  75.   programName: ADDRESS;
  76.  (*
  77.   * Zeiger auf den Aufrufnamen des Programmes.
  78.   * Der String endet mit 0C.
  79.   *)
  80.  
  81.   thisTask:  ADDRESS;
  82.  (*
  83.   *  Zeiger auf den eigenen Task/Process
  84.   *)
  85.  
  86.   oldCurrentDir:BPTR;
  87.  (*
  88.   *  CurrentDir bei Programmstart
  89.   *)
  90.  
  91.   errorFrame: ErrorFrame;
  92.  (*
  93.   * errorFrame wird bei einem Laufzeitfehler mit den
  94.   * aktuellen Werten gefüllt.
  95.   *)
  96.  
  97.  (*
  98.   * Für Erweiterungen der ENTWICKLER!
  99.   * Verhindert eine ständige Neudefinition von Arts.
  100.   *)
  101.   reserved1: INTEGER;
  102.   reserved2: ADDRESS;
  103.   reserved3: ADDRESS;
  104.   reserved4: ADDRESS;
  105.  
  106. (* Diese Prozedur ist IMMER die erste jedes Programms,
  107.  * NIEMALS aufrufen!!!!
  108.  *)
  109. PROCEDURE Startup(cl{0}:LONGINT; cb{8}:ADDRESS): LONGINT;
  110.  
  111. (* Compiler Unterstützung *)
  112. PROCEDURE StkChk(need{0}: LONGINT);
  113. PROCEDURE SystemError(err{0}: SysErr); (* SystemError(halt) = HALT *)
  114. PROCEDURE Mulu32(x{0},y{1}: LONGINT): LONGINT;
  115. PROCEDURE Divu32(x{0},y{1}: LONGINT): LONGINT; (* D0=REM, D1=QUO *)
  116. PROCEDURE Muls32(x{0},y{1}: LONGINT): LONGINT;
  117. PROCEDURE Divs32(x{0},y{1}: LONGINT): LONGINT; (* D0=REM, D1=QUO *)
  118. (* Nur für die "automatischen" Libraries! *)
  119. PROCEDURE OpenLib(version{0}:LONGINT; name{9}:ADDRESS):ADDRESS;
  120. PROCEDURE CloseLib(base{9}:ADDRESS);
  121.  
  122. (* Laufzeitunterstützung *)
  123. PROCEDURE Assert(condition: BOOLEAN; msg: ADDRESS);
  124. PROCEDURE BreakPoint(msg: ADDRESS);
  125. PROCEDURE Error(header,body: ADDRESS);
  126. PROCEDURE Requester(header,body,pos,neg: ADDRESS): BOOLEAN;
  127. PROCEDURE Terminate;
  128. PROCEDURE Exit(retVal{0}:LONGINT);
  129.  
  130. END Arts.
  131.